1. Field of the Invention
The present invention relates to information retrieval and distribution. More particularly, the present invention relates to a new system and method for the efficient distribution of large data objects from a distribution source device to a plurality of recipient devices.
2. Description of the Related Art
In current networked data communication environments, numerous situations arise which require copying data from a distribution source device to a plurality of recipient devices. Typically, the information copied contains large data objects. For example, content management systems, that include load-balancing and/or fail-over capabilities, typically distribute information containing large data objects from a source content management server (e.g., a distribution source device) to a plurality of recipient data servers (e.g., recipient devices) connected via standard IP-based connections.
Unfortunately, conventional techniques for distributing large data objects from a distribution source device to a plurality of recipient devices are typically inefficient. For example, one conventional approach retrieves a data object from relatively slow storage (e.g., hard disk, CD-ROM, etc.) once for each recipient device. Further, such conventional approaches typically use synchronous communication techniques to send each copy of the data object to one recipient device at a time, in sequence.
Drawbacks associated with such conventional approaches are numerous. In particular, distribution of a data object to N recipient devices using such conventional approaches requires the same data object to be retrieved N-times from slow storage. This increases the number of relatively slow storage device I/O requests required to support the data object distribution process and renders the storage device unavailable for access by other executing applications during each I/O request. Therefore, increasing the number of I/O requests to a storage device increases the opportunities for storage device I/O bottlenecks to arise. Since the typical storage device requires a greater amount of time to retrieve a larger data object than a smaller data object, such bottlenecks are exacerbated when the data object retrieved N-times from the storage device is large.
Further, transmitting a data object to each recipient device in serial succession does not mitigate against delays introduced by network or recipient server latencies. For example, if any single copy of a data object is delayed during transmission due to network or recipient server latencies, all subsequent transfers of the data object are delayed. Moreover, transmitting a data object to each of a plurality of recipient devices in series does not take advantage of efficiencies that can be achieved in multi-processor environments, where multiple processors are available to execute independent tasks in parallel.
Thus, there exists a need in the art for a system that efficiently distributes large data objects from a distribution source device to a plurality of recipient devices, reduces storage device I/0 congestion, mitigates against network and recipient server latencies, and is capable of taking advantage of multi-processor parallel tasking environments.